home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-07-25 | 69.4 KB | 1,860 lines |
- Subject: AIX Frequently Asked Questions (Part 2 of 3)
- Newsgroups: comp.unix.aix,comp.answers,news.answers
- From: jwarring@amsinc.com (Jeff Warrington)
- Date: 14 Nov 1994 05:15:20 GMT
-
- Archive-name: aix-faq/part2
- Last-modified: Nov 13, 1994
- Version: 3.70
-
-
- Version: $Id: faq.2,v 1.7 1994/10/13 03:46:52 jwarring Exp $
-
- Frequently Asked Questions to AIX 3.x and IBM RS/6000
- _____________________________________________________
-
- 1.201: How do I do remote backup?
-
- There seems to be several ways of doing this. I found the following works:
-
- tar -b1 -cf - . | rsh REMOTEHOST "dd ibs=512 obs=1024 of=/dev/TAPEDEVICE"
-
-
- From: kraemerf@franvm3.VNET.IBM.COM (Frank Kraemer)
-
- mksysb will not back up to remote tape devices. The following script
- will do remote backups.
-
- [Ed.: I've verified this script works fine. However, it may be slow for
- large filesystems since it creates a temp file of filenames in /tmp.]
-
- #!/bin/ksh
- # @(#) Create a backup tape of the private user data.
- #=================================================================#
- # Script : usave.sh #
- # Author : F. Kraemer #
- # Date : 92/02/19 #
- # Update : 92/10/29 #
- # Info : the ultimative backup script #
- # Example: usave.sh /dev/rmt0 - save to local tape #
- # usave.sh /save/save.me - save to local file #
- # usave.sh /tmp/pipe - save to remote tape #
- #-----------------------------------------------------------------#
- PS4="(+) "
- #set -x
- PROG=$(basename $0)
- HOST=$(hostname)
- TODAY=$(date +%H:%M:%S)
- #
- # cleanup
- #
- cleanup ()
- {
- ec=$1
- error=$2
- case "$ec"
- in
- "$USAGE_EC") # usage error
- error="Usage:\t$PROG DeviceName\n" 1>&2
- ;;
- "$NOTAP_EC") # Tape error
- error="error:\t$PROG: $DEVICE is not available on the system.\n" 1>&2
- ;;
- "$LISTE_EC") # list error
- error="error:\t$PROG: could not create tar list for $LOGNAME.\n" 1>&2
- ;;
- "$NOTAR_EC") # tar command error
- error="error:\t$PROG: tar command failed.\n" 1>&2
- ;;
- "$PIPEP_EC") # pipe error
- error="error:\t$PROG: mknod command failed.\n" 1>&2
- ;;
- "$NORSH_EC") # rsh error
- error="error:\t$PROG: rsh - Remote Shell command failed.\n" 1>&2
- ;;
- "$RHOST_EC") # remote host error
- error="error:\t$PROG: Remote Host unknown.\n" 1>&2
- ;;
- *)
- ;;
- esac
- case "$DEVICE"
- in
- #
- # Fix the block size if $DEVICE is a tape device
- #
- /dev/rmt[0-9]*)
- echo "\n\t$PROG: Rewinding tape to begin.........(please wait)\n"
- tctl -f $DEVICE rewind 2>/dev/null
- ;;
- *) ;;
- esac
- rm -f ${LIST} ${PIPE} 2>/dev/null
- [ -n "$error" ] && echo "\n${error}\n"
- trap '' 0 1 2 15
- exit "$ec"
- }
- #
- # Variables
- #
- USAGE_EC=1 # exit code for usage error
- NOMNT_EC=2 # exit code wrong device name
- NOTAP_EC=3 # exit code no tape available
- LISTE_EC=4 # exit code backup list error
- NOTAR_EC=5 # exit code for wrong tar
- TRAPP_EC=6 # exit code for trap
- PIPEP_EC=7 # exit code for pipe
- RHOST_EC=8 # exit code for bad ping
- NORSH_EC=9 # exit code for bad rsh
- DEVICE="$1" # device to tar into
- LIST="/tmp/.tar.$LOGNAME.$$" #
- REMOTEH="" # Remote host for backup
- REMOTET="" # Remote tape for backup
- tapedev= #
- PIPE="/tmp/pipe" # Pipe for remote backup
- #
- # main()
- #
- tput clear
- echo "\n\t$PROG started from $LOGNAME@$HOST on $TERM at $TODAY.\n"
- rm -f $LIST 2>/dev/null
- #
- # Trap on exit/interrupt/break to clean up
- #
- trap "cleanup $TRAPP_EC \"Abnormal program termination. $PROG"\" 0 1 2 15
- #
- # Check command options
- #
- [ "$#" -ne 1 ] && cleanup "$USAGE_EC" ""
- #
- # Check device name
- #
- [ `expr "$DEVICE" : "[/]"` -eq 0 ] && cleanup "$NOMNT_EC" \
- "$PROG: Backup device or file name must start with a '/'."
- #
- # Check tape device
- #
- case "$DEVICE"
- in
- #
- # Fix the block size if $DEVICE is a tape device
- #
- /dev/rmt[0-9]*)
- #
- echo "\n\t$PROG: Verify backup media ($DEVICE)............\n"
- #
- # see if a low or high density tape device was specified
- # (eg rmt0.1)
- density="`expr $DEVICE : \
- "/dev/rmt[0-9]*\.\([0-9]*\)"`"
- #
- # strip /dev/ from device name and
- # get the base name (eg translate:
- # /dev/rmt0.2 to rmt0)
- #
- tapedev="`expr $DEVICE : \
- "/dev/\(rmt[0-9]*\)[\.]*[0-9]*"`"
- #
- # Check if the tape is defined in the system.
- lsdev -C -c tape -S Available -F "name" | grep $tapedev >/dev/null 2>&1
- rc=$?
- [ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
- #
- # Restore old tape name.
- #
- [ "${density:-1}" -lt 4 ] && density=1 || density=5
- DEVICE="/dev/${tapedev}.${density}"
- echo "\n\t$PROG: Insert a tape in ($DEVICE)........(press enter)\n"
- read TEMP
- echo "\n\t$PROG: Rewinding tape to begin...........(please wait)\n"
- tctl -f $DEVICE rewind 2>/dev/null
- ;;
- #
- # Backup is done on remote host. The remote shell facility
- # must be set up and running.
- #
- ${PIPE}*)
- #
- echo "\n\t$PROG: Assuming remote backup via network.\n"
- echo "\t$PROG: Enter name of Remote Host ===> \c"
- read REMOTEH
- echo "\n\t$PROG: Pinging Remote Host to test connection.\n"
- ping ${REMOTEH} 1 1 >/dev/null 2>&1
- rc=$? # give up unknown host
- [ "$rc" -ne 0 ] && cleanup "$RHOST_EC" ""
- JUNK=$(rsh ${REMOTEH} "/usr/sbin/lsdev -C -c tape -S Available")
- rc=$? # give up rsh failed
- [ "$rc" -ne 0 ] && cleanup "$NORSH_EC" ""
- echo "\t$PROG: Available Tapes on ${REMOTEH} are :\n\n\t\t${JUNK}\n"
- echo "\t$PROG: Enter name of Remote Tape (e.g. /dev/rmt0) ===> \c"
- read REMOTET
- echo "\n\t$PROG: Insert tape on ${REMOTEH} in ${REMOTET}..(press enter)"
- read TEMP
- echo "\t$PROG: Rewinding Remote Tape ${REMOTET} on ${REMOTEH}.\n"
- rsh ${REMOTEH} "tctl -f ${REMOTET} rewind"
- rc=$? # give up rsh failed
- [ "$rc" -ne 0 ] && cleanup "$NOTAP_EC" ""
- rm -f ${PIPE} 2>/dev/null
- mknod ${PIPE} p
- rc=$? # give up mknod failed
- [ "$rc" -ne 0 ] && cleanup "$PIPEP_EC" ""
- cat ${DEVICE} | rsh ${REMOTEH} "dd of=${REMOTET} obs=100b 2>/dev/null" &
- ;;
- *) ;;
- esac
- #
- # Prepare the list
- #
- echo "\n\t$PROG: Create list of files to be saved...."
- find $HOME -print > $LIST
- rc=$?
- [ "$rc" -ne 0 ] && cleanup "$LISTE_EC" ""
- #
- # tar the files
- #
- echo "\n\t$PROG: Changing current directory to (/)...."
- cd / > /dev/null 2>&1
- echo "\n\t$PROG: Running tar format backup from user ($LOGNAME)...."
- tar -cvf "$DEVICE" -L "$LIST"
- rc="$?"
- [ "$rc" -ne 0 ] && cleanup "$NOTAR_EC" ""
- #
- # Backup completed
- #
- TODAY=$(date +%H:%M:%S)
- echo "\n\t$PROG ended at $TODAY............................\n\n"
- cleanup 0
-
-
- 1.202: How do I backup a multi-disk volume group?
- From: pack@acd.ucar.edu (Daniel Packman)
-
- [ Ed.: I have not verified this procedure. I would actually recommend
- NOT to have one volume group span multiple disks unless you really
- need such big logical volumes. ]
-
- 1. If you have a set of three or more disks in a volume group
- (typically 3 for 5xx machines with three internal drives;
- with only two, the procedures outlined here have to be modified
- to ignore the fact that you don't have a quorum in the volume group)
-
- 2. If one drive has failed (usually only one fails at a time :-) )
-
- It is possible to go through a service boot (the volume group is called
- rootvg and one of the 2 good disks on it is called hdisk0):
-
- importvg -y rootvg hdisk0
- varyonvg -f -n -m1 rootvg
-
- These commands will work, but give error messages. If you wish to mount
- a user filesystem, say /u on logical volume /dev/lv00, then
-
- mount -f /dev/lv00 /v
-
- will work only if jfslog, the journaled file system log device, is not
- on the damaged disk. If it is, you must (and can in any case) mount the
- filesystem read-only:
-
- mount -f -r /dev/lv00 /v
-
- This crucial and rather obvious point baffled several level 3 support
- personnel at Austin as well as myself for almost a week. Once the file
- system(s) of interest are available, they can be saved to tape for
- restoration later. Of course, one can expect only about two thirds of a
- filesystem to be recoverable if it spans all 3 physical disks. One
- other point to remember is that the standard boot procedure from floppy
- includes the restore command but does not include the backup command.
-
- *****************************************************************************
- * If you do not have other RS6000 machines at your site it is imperative *
- * that you either build a bootable tape which includes either restore or *
- * tar or cpio (a bootable floppy set will not have enough space) or at the *
- * very least copy onto a spare floppy backup, cpio, or tar. The floppy *
- * should be created with backup -ivq so that its contents can be read into *
- * the memory resident system after booting. *
- *****************************************************************************
-
- All is not lost if tar, cpio or backup are available on an undamaged
- disk that can be mounted. Since tar and cpio are in /bin, they may both
- very well be unavailable.
-
- It is a very good idea for those who have tape devices to build a
- bootable tape with their desired extra commands in it. Follow the
- instructions from IBM but add your desired commands to the following
- three files:
-
- /usr/lpp/bosinst/tape2
- /usr/lpp/bosinst/diskette/boot2
- /usr/lpp/bosinst/diskette/inslist
-
- If you have anything other than a minimum memory configuration, you
- should be able to add many commands.
-
-
- 1.203: How do I put multiple backups on a single 8mm tape?
- From: kerm@mcnc.org (Cary E. Burnette)
-
- There are two possible solutions to this, both of which use /dev/rmt0.1
- which is non-rewinding.
-
- SOLUTION #1
- -----------
-
- To put multiple backups on a single tape, use /dev/rmt0.1, which is a
- no-rewind device, using either rdump or backup (both by name & inode
- work). Using rdump or backup "byinode" both generate the message that
- the tape is rewinding but actually do not. This is an example that
- works on my system:
-
- # rsh remote1 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
- # rsh remote2 -l root /etc/rdump host:/dev/rmt0.1 -Level -u /u
- # tctl -f /dev/rmt0.1 rewind # rewinds the tape
-
- where I am implementing the command from host.
- To restore a table of contents of the first I would use
-
- # restore -f /dev/rmt0.1 -s1 -tv
-
- where the -s1 flag tells restore to go to the first record on the tape.
- Type the exact command again to get the second record. The -s(Number)
- means go to Number record from this spot. It works pretty well.
-
-
- SOLUTION #2
- -----------
-
- Steve Knodle
- Educational Resources Center
- Clarkson University
-
- I use:
- ------------------- Dump.sh --------------------
- CONTENTSFILE=`date |dd conv=lcase |sed -e 's/19//' |awk '{print $6 $2 $3}'`
- set -x
- LEVEL=$1
- shift
-
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /usr
- backup -c -b 56 -$LEVEL -uf /dev/rmt0.1 /u
- tctl -f /dev/rmt0 rewind
-
- touch /usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /usr" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- echo "Dumping /u" >>/usr/local/dumps/Contents.$CONTENTSFILE
- restore -t -q -s 1 -f /dev/rmt0.1 >>/usr/local/dumps/Contents.$CONTENTSFILE
- tctl -f /dev/rmt0 rewind
-
- I process the table-of-contents first by a little program that does
- common prefix encoding, and then compress.
-
- This gives a table of contents file I can keep on-line until the tape
- is reused.
-
-
- 1.204: How can I make an exact duplicate of a tape over the network?
-
- The challenge here is not to have to create a temporary file (disk space
- limitation) and work across heterogeneous networks.
-
- This script might work:
-
- LOCAL=/dev/tape_dev
- REMOTE=/dev/tape_dev
- dd if=$LOCAL ibs=64k obs=512 | rsh remote_host dd ibs=512 obs=64k of=$REMOTE
-
-
- From: pack@acd.ucar.edu (Daniel Packman)
-
- Daniel provides the following perl script to convert from the known
- world's function codes to AIX for compatibility.
-
- #!/bin/perl
- # Wrapper to convert input rmt requests to
- # AIX 3.2 ioctl numbers. We pass on all commands we don't understand
- # I0 MTWEOF -> I10 STWEOF write and end-of-file record
- # I1 MTFSF -> I11 STFSF forward space file
- # I2 MTBSF -> I12 STRSF reverse space file
- # I3 MTFSR -> I13 STFSR forward space record
- # I4 MTBSR -> I14 STRSR reverse space record
- # I5 MTREW -> I6 STREW rewind
- # I6 MTOFFL -> I5 STOFFL rewind and unload tape
- # I7 MTNOP -> I0 (no-op? should ignore following count)
- # I8 MTRETEN-> I8 STRETEN retension tape, leave at load point
- # I9 MTERASE-> I7 STERASE erase tape, leave at load point
- #I10 MTEOM (position to end of media ... no ibm equivalent?)
- #I11 MTNBSF (backward space file to BOF ... no ibm equivalent?)
- @iocs = (10,11,12,13,14,6,5,0,8,7);
- open(RMT,"|/usr/sbin/rmt") || die "Can't open pipe to rmt\n";
- select(RMT);
- $| = 1;
- while (<STDIN>) {
- s/(^I)(\d$)/I$iocs[$2]/;
- exit 0 if $_ =~ /^[Qq]/;
- print RMT $_ ; }
- exit 0;
-
-
- 1.205: What is tape block size of 0?
- From: benson@odi.com (Benson I. Margulies)
-
- Tape devices are generally split into two categories: fixed block and
- variable block. 1/4" tape is the fixed block, and 8mm is variable.
-
- On a fixed block size device, the kernel always sends data to the device
- in suitable block size lumps, and varying the size passed to write(2)
- (e.g., via the bs option to dd) gives the kernel more data to stream.
- On a variable block size device, the kernel writes to the device
- whatever passed to it. On an 8mm, it had better be a multiple of 1024
- to get efficient tape usage.
-
- AIX has the World's Only Variable Block Size 1/4" tape drive. If you
- use SMIT to set the block size to a nonzero value, AIX treats the device
- as fixed block size, whether it is or not. By default, 8mm drives are
- set to the same size as 1/4", 512 bytes. This is wasteful, but
- otherwise mksysb and installp would fail.
-
- If you set the block size to 0, the device is treated as variable block
- size, and the size passed to write becomes the physical block size.
- Then if you use a sensible block size to dd, all should be wonderful.
-
-
- 1.206: Resetting a hung tape drive
- From: Craig_Anderson@kcbbs.gen.nz (Craig Anderson)
-
- A process accesses the tape drive. The process stops, exits, or whatever,
- but still hold on to the drive. When this happens, the process cannot be
- killed by any signal and the tape drive cannot be used by any other
- process until the machine is rebooted.
-
- The following should help:
-
- RESET:
-
- AIX, like most UNIX systems has no reset function for tape drives. You
- can however send a Bus Device Reset (a standard SCSI message) to the
- tape drive using the following piece of code. If the tape drive does
- not respond to the BDR, then a SCSI Bus Reset will be sent (and this
- will reset every device on the SCSI Bus). SCSI Bus resets are rather
- extreme so you should refrain from using this program unnecessarily.
- But there are times (like after you've inserted a jammed/old/bad tape in
- an 8mm drive), when there's no other way to reset the device other than
- to shutdown and reboot (obviously you can power down and up an external
- drive to reset it - and this would be the better choice).
-
- This is actually documented in info, but can be hard to find and
- there's no complete program.
-
- /* taperst: resets the tape drive by sending a BDR to the drive. */
- #include <stdio.h>
- #include <fcntl.h>
- #include <errno.h>
- #include <sys/scsi.h>
-
- int main(int argc, char **argv)
- {
- /* This can be run only by root */
-
- if (argc != 2) {
- fprintf(stderr, "Usage: %s /dev/rmt#\n", argv[0]);
- return 1;
- }
-
- if (openx(argv[1], O_RDONLY, 0, SC_FORCED_OPEN) < 0) {
- perror(argv[0]);
- return 2;
- }
- return 0;
- }
-
- 1.207: How do I read a mksysb tape with tar?
- From: Marc Pawliger (marc@sti.com)
-
- To recover specific files from a backup made with mksysb, try
- $ tctl fsf 3
- $ tar xvf/dev/rmt0.1 ./your/file/name
-
-
- 1.208: How do I read a 5Gbyte tape on a 2Gbyte drive?
- Posted by: bobmet@clam.com (Robert Metcalf)
-
- To read a 5Gbyte tape on a 2Gbyte drive, the
- tape needs to have been created with a density setting of 20.
-
- The following is from IBM's electronic ASKSUPPORT repository:
-
- R: The 7208 011 5 GB tape drive has various density settings which are
- as follows:
-
- +-------+--------------------------+
- | DENSIT| DESCRIPTION |
- | SETTIN| |
- +-------+--------------------------+
- | 140 | Writes in 5.0GB mode and |
- | | will enable data com- |
- | | pression; also, to do |
- | | compression you must use |
- | | "DATA COMPRESSION = yes" |
- +-------+--------------------------+
- | 21 | Writes in 5.0GB mode and |
- | | will NOT do data com- |
- | | pression |
- +-------+--------------------------+
- | 20 | Writes in 2.3GB mode and |
- | | will NOT do data com- |
- | | pression |
- +-------+--------------------------+
- | 00 | Factory power-on default |
- | | for 5.0GB data com- |
- | | pression mode |
- +-------+--------------------------+
-
- The density setting of the 7208 011 must be 20 for it to make a tape
- that is readable by the 7208 001.
-
- ______________________________________________________________________________
- 1.300: Some info about the memory management system
- From: Michael Coggins (MCOG@CHVM1.VNET.IBM.COM).
-
- 1. Does AIX use more paging space than other unix systems?
-
- Under many scenarios, AIX requires more paging space than other unix
- systems. The AIX VMM implements a technique called "early allocation of
- paging space". When a page is allocated in RAM, and it is not a
- "client" (NFS) or a "persistent" (disk file) storage page, then it is
- considered a "working" storage page. Working storage pages are commonly
- an application's stack, data, and any shared memory segments. So, when
- a program's stack or data area is increased, and RAM is accessed, the
- VMM will allocate space in RAM and space on the paging device. This
- means that even before RAM is exhausted, paging space is used. This
- does not happen on many other unix systems, although they do keep track
- of total VM used.
-
- Example 1:
- Workstation with 64mb RAM is running only one small application that
- accesses a few small files. Everything fits into RAM, including all
- accessed data. On AIX, some paging space will already be used. On
- other unix systems, paging space will be 100% free. Clearly, this is an
- example that shows where we use more paging space than the other machines.
-
- Example 2:
-
- Same machine as above, except we are in an environment where many
- applications are running with inadequate RAM. Also, the system is
- running applications that are started, run, left idle, and not in
- constant use. A session of FRAME running in a window, for example.
- What happens is that eventually (theoretically) all applications will be
- paged out at least once. On the AIX system and the other systems the
- total paging requirements will be the same (assuming similar malloc
- algorithm). The major difference is that the AIX system allocated the
- paging space pages before they were actually needed, and the other
- systems did not allocate them until they were needed. However, most
- other systems have an internal variable that gets incremented as virtual
- memory pages are used. AIX does not do this. This can cause the AIX
- system to run out of paging space (virtual memory), even though malloc()
- continues to return memory. This "feature" allows sparse memory
- segments to work, but requires that all normal users of malloc()
- (sbrk()) know how much virtual memory will be available (actually
- impossible), and to handle a paging space low condition. A big problem.
- There are some pretty obvious pros and cons to both methods of doing
- Virtual Memory.
-
- 2. How much paging space do I need?
-
- Concerning the rule of thumb of having 2 times RAM for paging space:
- this is rather simplistic, as are most rules of thumb. If the machine
- is in a "persistent storage environment", meaning that they have a few
- small programs, and lots of data, they may not need even as much as 1
- times RAM for paging space. For example, a 1GB database server running
- on a 6000 with 256MB of RAM, and only running about 50MB of "working"
- storage does not need 512MB of paging space, or even 256MB. They only
- need the amount of paging space that will allow all their working
- storage to be paged out to disk. This is because the 1GB database is
- mostly "persistent storage", and will require little or no paging space.
- Excessive paging space may simply mean wasted disk space. However,
- avoid insufficient paging space. Tip: Don't have more than one paging
- space per disk. Tip: Put lots of RAM in your system - it will use it.
-
- 3. Why does vmstat show no free RAM pages?
-
- AIX uses RAM as a possibly huge disk buffer. If you read a file in the
- morning, that file is read into RAM, and left there. If no other
- programs need that RAM, that file will be left in RAM until the machine
- is halted. This means that if you need the file again, access will be
- quick. If you need that RAM, the system will simply use the pages the
- file were using. The pages were flushed back to disk earlier. This
- means that you can get a huge speedup in disk access if you have enough
- RAM. For example, a 200MB database will just ease into RAM if you have
- a 256MB system.
-
- 4. Since vmstat shows no free RAM pages, am I out of RAM?
-
- Probably not. Since disk files will be "mapped" into RAM, if vmstat
- shows lots of RAM pages FREE, then you probably have too much RAM (not
- usual on a RISC System/6000)!
-
- 5. Shouldn't the "avm" and the "fre" fields from vmstat add up to something?
-
- No. The "avm" field tells you how much "Active Virtual Memory" AIX
- thinks you are using. This will closely match the amount of paging
- space you are using. This number has *ABSOLUTELY* nothing to do with
- the amount of RAM you are using, and does *NOT* include your mapped
- files (disk files). The amount of RAM can be determined with
- /usr/sbin/bootinfo -r
-
- 6. Why does the "fre" field from vmstat sometimes show lots of free
- RAM pages?
-
- This will happen after an application that used a lot of RAM via
- "working" storage (not NFS storage, and not disk file or "persistent"
- storage) exits. When RAM pages that were used by working storage (a
- program's stack and data area) are no longer needed, there is no need to
- leave them around. AIX completely frees these RAM pages. The time to
- access these pages versus a RAM page holding a "sync'd" mapped file is
- almost identical. Therefore, there is no need to periodically "flush" RAM.
-
- 7. Is the vmstat "fre" field useful?
-
- The vmstat "fre" field represents the number of free page frames. If
- the number is consistently small (less than 500 pages), this is normal.
- If the number is consistently large (greater than 4000 pages), then you
- have more memory than you need in this machine.
-
-
- 1.301: How much should I trust the ps memory reports?
- From: chukran@austin.VNET.IBM.COM
-
- Using "ps vg" gives a per process tally of memory usage for each running
- process. Several fields give memory usage in different units, but these
- numbers do not tell the whole story on where all the memory goes.
-
- First of all, the man page for ps does not give an accurate description
- of the memory related fields. Here is a better description:
-
- RSS - This tells how much RAM resident memory is currently being used
- for the text and data segments for a particular process in units of
- kilobytes. (this value will always be a multiple of 4 since memory is
- allocated in 4 KB pages).
-
- %MEM - This is the fraction of RSS divided by the total size of RAM for
- a particular process. Since RSS is some subset of the total resident
- memory usage for a process, the %MEM value will also be lower than actual.
-
- TRS - This tells how much RAM resident memory is currently being used
- for the text segment for a particular process in units of kilobytes.
- This will always be less than or equal to RSS.
-
- SIZE - This tells how much paging space is allocated for this process
- for the text and data segments in units of kilobytes. If the executable
- file is on a local filesystem, the page space usage for text is zero.
- If the executable is on an NFS filesystem, the page space usage will be
- nonzero. This number may be greater than RSS, or it may not, depending
- on how much of the process is paged in. The reason RSS can be larger is
- that RSS counts text whereas SIZE does not.
-
- TSIZ - This field is absolutely bogus because it is not a multiple of 4
- and does not correlate to any of the other fields.
-
- These fields only report on a process text and data segments. Segment
- size which cannot be interrogated at this time are:
-
- Text portion of shared libraries (segment 13)
-
- Files that are in use. Open files are cached in memory as
- individual segments. The traditional kernel cache buffer
- scheme is not used in AIX 3.
-
- Shared data segments created with shmat.
-
- Kernel segments such as kernel segment 0, kernel extension
- segments, and virtual memory management segments.
-
- Speaking of kernel segments, the %MEM and RSS report for process zero
- are totally bogus for AIX 3.1. The reason why RSS is so big is that the
- kernel segment zero is counted twice. For AIX 3.2, this has been
- changed, but the whole story is still not known. The RSS value for
- process 0 will report a very small number of the swapper private data
- segment. It does not report the size of the kernel segment 0, where the
- swapper code lives.
-
- In summary, ps is not a very good tool to measure system memory usage.
- It can give you some idea where some of the memory goes, but it leaves
- too many questions unanswered about the total usage.
-
-
- 1.302: Which simms do RS6000's use?
-
- This answer is under construction... I'm trying to collect details
- about compatable simms.
-
- RS/6000 220,230 USE 2 pair 70ns PS/2 style simms
- RS/6000 250,C10 USE 4 pair 70ns PS/2 style simms
-
-
- ______________________________________________________________________________
- 1.400: How do I make an informative prompt in the shell?
-
- In the Korn Shell (ksh), the PS1 variable is expanded each time it is
- printed, so you can use:
-
- $ export myhost=`hostname`
- $ PS1='$LOGNAME@$myhost $PWD \$ '
-
- to get, e.g.
-
- bengsig@ieibm1 /u/bengsig $
-
- In the C-shell, use:
-
- % set myhost=`hostname`
- % alias cd 'chdir \!* > /dev/null; set prompt="$LOGNAME@$myhost $cwd % "'
- % cd
-
- to get, e.g.
-
- bengsig@dkunix9 /u/bengsig/aixfaq %
-
- There is no easy solution in the Bourne Shell. Use the Korn Shell instead.
-
-
- 1.401: How do I set up ksh for emacs mode command line editing?
-
- The ksh has an undocumented way of binding the arrowkeys to the emacs
- line editing commands. In your .kshrc, add:
-
- alias __A=`echo "\020"` # up arrow = ^p = back a command
- alias __B=`echo "\016"` # down arrow = ^n = down a command
- alias __C=`echo "\006"` # right arrow = ^f = forward a character
- alias __D=`echo "\002"` # left arrow = ^b = back a character
- alias __H=`echo "\001"` # home = ^a = start of line
-
- Type "set -o emacs" or put this line in your .profile.
-
- Also, you MUST have PTF U406855 for this to work in AIX 3.2. The APAR #
- for the problem is IX25982, which may have been superseded.
-
-
- 1.402: Listing files with ls causes a core dump
- From: John F Haugh II
-
- Scenario: a directory that is shared by N users (N >= 200).
- Run 'ls -l' in that directory. It goes for a while, then
- Seg fault(coredump)!
-
- It only occurs when the usernames are displayed (almost every file is
- owned by a different person). The -g and -n options work fine; only -l
- and -o (which shows owner and not group) cause it.
-
- I believe that this problem was corrected by U407548. If you have that
- many users that you are having core dump problems (it took over 200),
- you might also want to look into getting the PTF that fixes IX31403.
- That APAR deals with large numbers of accounts and performance problems
- associated with looking them up.
-
-
- 1.403: How do I put my own text into InfoExplorer?
-
- With AIX 3.1, you cannot do it. AIX 3.2 has a product called
- InfoCrafter that allows you to do that.
-
-
- 1.404: InfoExplorer ASCII key bindings
- From: mycroft@hal.gnu.ai.mit.edu (Charles Hannum)
-
- If you just press 'Return' when it starts up, with 'Basic Screen
- Operations' highlighted, you'll get some help.
-
- If you look long enough, you'll find a page named 'Using Keys and Key
- Sequences in the InfoExplorer ASCII Interface'. It describes the key
- sequences and actions. Here are a few to get you started.
-
- Keys Action
-
- Ctrl-W Moves between the Navigation screen and the Reading screen.
- If the Navigation screen is displayed, you can press Ctrl-W to display
- the Reading screen. If the Reading screen is displayed, you can press
- Ctrl-W to display the Navigation screen.
-
- Ctrl-O Makes the menu bar active or inactive. If your text cursor is
- located in the text area of the screen, you can press Ctrl-O to make the
- menu bar active. If the menu bar is already active, you can press
- Ctrl-O to make it inactive, which moves the text cursor to the text area.
-
- Tab Moves to the next menu bar option in the menu bar. If a pull-down
- menu is not displayed and you press the Right Arrow key, the next menu
- bar option is displayed in reverse video.
-
-
- 1.405: How can I add new man pages to the system?
- From: horst@faui63.informatik.uni-erlangen.de (Horst Luehrsen)
-
- Put the man pages in /usr/man, e.g. /usr/man/man1/tcsh.1 for the tcsh
- man page. Unter AIX 3.1.10, /usr/lib/makewhatis can be used to update
- the makewhatis-database /usr/man/whatis so apropos and whatis know about
- the added manpages. /usr/lib/makewhatis should be available on all 3.2
- versions.
-
-
- 1.406: Why can't I read man pages? Where is nroff?
-
- Nroff and troff aren't in the base installation. It is shipped as
- part of AIX 3.2.5 but may not be installed. Use smit to install a
- software package called txtfmt.tfs.obj from your 3.2.5 distribution
- media.
-
- ______________________________________________________________________________
- 1.500 Which release of X11 do I have?
-
- Run 'lslpp -h X11rte.obj'.
- If your output has a line similar to:
-
- 01.02.0000.0000 COMPLETE COMMIT 03/04/93 02:05:11 root
-
- you have X11 R4. If your output has a line similar to:
-
- U491068 01.02.0003.0000 COMPLETE COMMIT 07/28/93 12:50:42 root
-
- you have X11 R5. Some people also call these AIXwindows 1.2.0 and 1.2.3.
-
-
- 1.501: How to prevent ctrl-alt-backspace from killing the X session
-
- Start X with 'xinit -T' to disable ctrl-alt-backspace from stopping X.
-
-
- 1.502: Who has a termcap/terminfo source for the HFT console?
-
- The console used on the RISC System/6000, PS/2 and RT can be used as a
- terminal on another system with the termcap below. You can find this
- and other termcaps in /lib/libtermcap/termcap.src, including IBM
- specific ones. The terminfo sources are stored in /usr/lib/terminfo/*.ti.
- This termcap can also be used from an aixterm window.
-
- hf|hft|hft-c|ibm8512|ibm8513|IBM_High_Function_Terminal:\
- :co#80:li#25:am:ht:\
- :cm=\E[%i%d;%dH:ti=\E[25;1H:te=\E[20h:\
- :nd=\E[C:up=\E[A:do=^J:ho=\E[H:\
- :bs:sf=\E[S:ec=\E[%dX:\
- :cl=\E[H\E[J:cd=\E[J:ce=\E[K:\
- :AL=\E[%dL:DL=\E[%dM:al=\E[L:dl=\E[M:\
- :im=\E[4h:ei=\E[4l:mi:\
- :dm=\E[4h:ed=\E[4l:\
- :so=\E[7m:se=\E[m:ul=\E[4m:ue=\E[m:\
- :md=\E[1m:mr=\E[7m:mb=\E[5m:me=\E[m:\
- :as=^N:ae=^O:sc=\E[s:rc=\E[u:\
- :kl=\E[D:kb=^H:kr=\E[C:ku=\E[A:kd=\E[B:kh=\E[H:\
- :kn#10:k1=\E[001q:k2=\E[002q:k3=\E[003q:k4=\E[004q:k5=\E[005q:\
- :k6=\E[006q:k7=\E[007q:k8=\E[008q:k9=\E[009q:k0=\E[010q:\
- :is=\Eb\E[m^O\E[?7h:rs=\Eb\E[m^O\E[?7h\E[H\E[J:
-
-
- 1.503: How can I look at PostScript files? Why is "dpsexec" so lousy?
- From Marc Pawliger (marc@sti.com)
-
- showps comes with the 1.2.3 (X11R5) version of the X11rte.ext.obj LPP.
- Very nice PS file previewer from Adobe. Replaces xpsview which came
- with pre-1.2.3 Installed as /usr/lpp/DPS/showps/showps
-
- From: VRBASS@ATLVMIC1 (Vance R. Bass)
-
- You can look at PostScript files using either "xpreview" (in the
- optionally installable text formatting services) or you can get
- Ghostscript and Ghostview from a comp.sources.x server and build it
- yourself.
-
- >From the "xpreview" man page:
- The xpreview command is an AIXwindows 1.2- and Motif 1.1-based
- application that displays output from the troff command on an AIXwindows
- display. The troff command output file must be prepared for any one of
- the devX100, devX100K or devpsc devices. The xpreview command also
- displays PostScript language files that begin with %!.
-
- "dpsexec" is NOT intended to be a full-service document browser, but
- rather a simple DPS code debugger. If you insist on using it, you can
- edit your PS code to remove the "showpage" (which will reset dpsexec
- and clear the window) to view single-page files. It does not handle
- multi-page files gracefully.
-
-
- 1.504: unix:0 vs `hostname`:0
-
- 1.) Is there any way to get the machine to check its local host table
- first without renaming resolv.conf?
-
- PTF U412845 implements an environment variable to set the resolver
- time out in AIX 3.2. This allows you to set RES_TIMEOUT to the number
- of seconds before it times out, a failing a DNS query the machine will
- consult /etc/hosts.
-
- 2.) How do you tell X applications where you are if the console display
- is unix:0?
-
- From: crow@waterloo.austin.ibm.com (David L. Crow)
-
- I would suggest that if you have R5, use ":<display>.<screen>". I do
- not believe that R4 clients will understand :0, so I would suggest
- unix:0 for them.
-
- Without specifying unix or the hostname, you will get the fastest
- transport mechanism. While currently there are only two transport
- methods in the AIXwindows X server (Unix sockets and TCP sockets),
- many vendors are looking at using shared memory as a transport method.
- If you use :0 (or :0.0 or :1, etc.), then you should get the best
- performance regardless of the available transport methods.
-
- From Marc Pawliger (marc@sti.com)
- Using "unix:0" or "hostname:0" when the X11 Shared Memory Transport
- (SMT) is installed as part of the 1.2.3 X11rte.obj (X11R5) will incur
- a penalty vs. using ":0" See /usr/lpp/X11/README.SMT
-
- 3.) Is there a significant performance penalty incurred by using
- `hostname`:0 as DISPLAY?
-
- Yes! Using unix:0, you are using Unix sockets. These are much faster
- than their TCP socket counterparts.
-
-
- 1.505: VT100 key bindings for aixterm
- From: haedener@iac.unibe.ch (Konrad Haedener)
-
- Add this to your .Xdefaults file and start your VAX session with
- 'aixterm -v -name vt100 -e telnet MYVAXHOST'
-
- -----
- vt100.foreground: Wheat
- vt100.background: MidnightBlue
- vt100.font: Rom14.500
- vt100.geometry: 80x25+0+0
- vt100.vt102: true
- vt100.fullcursor: false
- vt100.pointerColor: coral
- vt100.cursorColor: gray100
- vt100.translations: <Key>F1: string(0x1b) string("OP") \n\
- <Key>F2: string(0x1b) string("OQ") \n\
- <Key>F3: string(0x1b) string("OR") \n\
- <Key>F4: string(0x1b) string("OS") \n\
- <Key>KP_0: string(0x1b) string("Op") \n\
- <Key>KP_1: string(0x1b) string("Oq") \n\
- <Key>KP_2: string(0x1b) string("Or") \n\
- <Key>KP_3: string(0x1b) string("Os") \n\
- <Key>KP_4: string(0x1b) string("Ot") \n\
- <Key>KP_5: string(0x1b) string("Ou") \n\
- <Key>KP_6: string(0x1b) string("Ov") \n\
- <Key>KP_7: string(0x1b) string("Ow") \n\
- <Key>KP_8: string(0x1b) string("Ox") \n\
- <Key>KP_9: string(0x1b) string("Oy") \n\
- <Key>KP_Divide: string(0x1b) string("OQ") \n\
- <Key>KP_Multiply: string(0x1b) string("OR") \n\
- <Key>KP_Subtract: string(0x1b) string("OS") \n\
- <Key>KP_Add: string(0x1b) string("Om") \n\
- <Key>KP_Enter: string(0x1b) string("OM") \n\
- <Key>KP_Decimal: string(0x1b) string("On") \n\
- <Key>Next: string(0x1b) string("Ol") \n\
- <Key>Left: string(0x1b) string("OD") \n\
- <Key>Up: string(0x1b) string("OA") \n\
- <Key>Right: string(0x1b) string("OC") \n\
- <Key>BackSpace : string(0x7f) \n\
- <Key>Down: string(0x1b) string("OB")
-
- You should also add
-
- XENVIRONMENT=$HOME/.Xdefaults
- export XENVIRONMENT
-
- to your .profile.
-
-
- 1.506: Is there a screen saver that does not use excessive CPU?
-
- From: buchholz@ese.ogi.edu (Don Buchholz)
-
- Try using xlock with these options:
-
- xlock -mode life -count 1500 -nice 20 -root
-
-
- From: pranav@evolving.com (Pranav Vakil)
-
- Use mlock -hide to hide the background. You can also modify the mlock
- (/usr/local/tools/mlock) code to allow the standard X screen saver to
- take effect. The timeout value is originally set to 0 which means the
- screen saver is off. Modify this to be 120 (2 minutes) and set the
- interval time to be 60 (1 minute). Using these intervals, I have found
- that over a 24 hour period, it uses only .3 cpu minutes.
-
- 1.507: Where are the colors, availible for an X session, listed.
-
- /usr/lpp/x_st_mgr/bin/rgb.txt
-
-
- 1.508: Why does my app hang the X server but not an X station?
- From: brox@corena.no (Bjorn P. Brox)
-
- /usr/lpp/X11/README.SMT X client/server communication uses a 64k
- buffer by default. The size of this buffer is controled by the
- X_SHM_SIZE environment variable increasing the size of the buffer has
- been used to prevent some applications from hanging the X server :)
-
- 1.509: How do I switch the control and caps lock key bindings?
-
- If you are running the X window system, you can put the following into
- .xmodmaprc
-
- remove Lock = Caps_Lock
- remove Control = Control_L
- keysym Control_L = Caps_Lock
- keysym Caps_Lock = Control_L
- add Lock = Caps_Lock
- add Control = Control_L
-
- 1.510: Missing fonts?
-
- If your Xserver supports X11R5 try running a font server (edit
- /usr/lib/X11/fs/config and run fsconf && startsrc -s fs) Consult your
- Xserver instructions on how to include a font server in your font
- path.
-
- 1.511: What's the termcap entry for an IBM 3151 look like?
-
- #
- # Written by Aleksandar Milivojevic, alex@srce.hr
- # 24.09.1994
- #
- I2|ibm3151|3151|IBM 3151 terminal:\
- :am:mi:cr=^M:sf=^J:co#80:li#24:cd=\EJ:ce=\EI:cm=\EY%+\040%+\040:\
- :cl=\EH\EJ:dc=\EQ:dl=\EO:do=\EB:le=\ED:mb=\E4$a:md=\E4(a:\
- :me=\E4@\E>B:mr=\E4!a:nd=\EC:se=\E4>b:so=\E4!a:ue=\E4=b:up=\EA:\
- :us=\E4"a:kb=^H:kd=\EB:kh=\EH:kl=\ED:kr=\EC:ku=\EA:\
- :k1=\Ea\r:k2=\Eb\r:k3=\Ec\r:k4=\Ed\r:k5=\Ee\r:\
- :k6=\Ef\r:k7=\Eg\r:k8=\Eh\r:k9=\Ei\r:k0=\Ej\r:\
- :ti=\E>B:te=\E>B:ms:ho=\EH:bl=^G:al=\EN:ta=^I:
-
-
- 1.512: Errors starting X11 application binaries from aixpdslibs.
- From: ftp://aixpdslib.seas.ucla.edu/pub/README_X11R5_Stuff
-
- We have been aware of the problem people have with dynamic links
- when running the prebuilt of X-stuffs from this library.
-
- The typical error messages will be:
-
- Could not load program [program_name]
- Member shr4.o not found or file not an archive
- Member shr4.o not found or file not an archive
- Could not load library libXt.a[shr4.o]
- Error was: No such file or directory
-
- It's because that we built the programs using X11 libraries of MIT
- which are not compatible with those of IBM. If this is the case,
- then please get the compressed tarred file of the source code instead,
- and recompile them on your system using your libraries.
-
-
- ______________________________________________________________________________
- 1.600: My named dies frequently, why?
-
- Running on 3.2, named dies frequently on network's primary name server.
-
- From: jpe@ee.egr.duke.edu (John P. Eisenmenger)
-
- Try the following:
-
- stopsrc -s named # stop running named
- setenv MALLOCTYPE 3.1 # use 3.1 memory allocation algorithm
- /etc/named ... # don't use smit to start named
-
- You might be able to use startsrc/smit after setting MALLOCTYPE and get
- the same effect, but I'm not sure.
-
- [According to John, the problem is malloc() in the named code. He
- also suggests using Berkeley's bind, which he has ported and can be
- ftp'ed from ftp.egr.duke.edu, /archives/network/bind-4.8.3.tar.Z. -ed]
-
- Two ptfs should fix this problem. Get U412332 and U414752.
-
- Christophe Wolfhugel <Christophe.Wolfhugel@grasp.insa-lyon.fr> reports
- that bind 4.9 works fine on AIX 3.2 and without MALLOCTYPE=3.1.
-
-
- 1.601: How do I trace ethernet packets on an AIX system?
- From: afx@muc.ibm.de (Andreas Siegert)
-
- Do the following:
-
- iptrace -i en0 /tmp/ipt
-
- The iptrace backgrounds. Find its process id and kill it when you are
- ready. Then run
-
- ipreport -rns /tmp/ipt >/tmp/ipr
-
- and look at the output. The current version of Info does not document
- the r, n and s options but they are quite useful for layering the output.
-
-
- 1.602 What is the authorized way of starting automount at boot time?
- From: curt@ekhadafi.austin.ibm.com (Curt Finch)
-
- I put this in my /etc/inittab:
-
- automount:2:once:/usr/etc/automount -T -T -T -v >/tmp/au.se 2>&1
-
- I hereby dub it authorized.
-
-
- 1.603: How do I set a tty port for both dial-in and dial-out?
-
- Set the mode of the tty to be either 'shared' or 'delayed'.
-
-
- 1.604: How to move or copy whole directory trees across a network
-
- The following command will move an entire directory tree across a network
- while preserving permissions, uids and gids.
-
- $rsh RemoteHost "cd TargetDir; tar -cBf - ." | tar -xvBf -
-
- Explanation:
-
- The tar-create is rsh'd to the remote system and is written to
- stdout (the pipe).
-
- The local system is extracting the tar that is being read from
- stdin (the pipe).
-
-
- 1.605: How can I send mail to hosts that cannot be pinged?
- From: jupiter.sun.csd.unb.ca!dedourek (John DeDourek)
-
- AIX 3.2 as shipped is configured to only send mail to mail addresses
- which include a host name. Many organizations use a mail address whose
- "host name" part is not a host name (technically an MX name). To change
- the configuration of the AIX mailer, login as root. Then edit the file
- /etc/sendmail.cf to remove the comment marker ("# ") at the beginning of
- the line which reads:
- # OK MX
-
- Now rebuild the machine readable form of the configuration with
- sendmail -bz
-
- and finally restart signal sendmail to load the new configuration by one
- of the following:
- reboot
- or
- stopsrc -s sendmail
- startsrc -s sendmail
- or
- kill -1 `cat /etc/sendmail.pid`
-
-
- 1.606: How to configure dialup SLIP
-
- While searching IBM's WWW home page http://www.ibm.com/ I came accross
- a pointer to a fax availible on this topic:
- http://www.austin.ibm.com/pub/www/services/aix_service/faxes/SLIP.DOC.zap
-
- From: marvin@tornado.oche.de (Christian Bode)
-
- If you don't have problems with slattach you should have PTF
- bos.obj 3.2.0.0.U411505 installed. I assume that you did the right
- ifconfig commands to setup your slip-device (for example sl0).
-
- 1. Create a group called slip.
-
- 2. Create a user slip with smit like this:
- [Entry Fields]
- * User NAME [slip]
- ADMINISTRATIVE User? true
- User ID []
- LOGIN user? true
- PRIMARY group [slip]
- Group SET [slip]
- ADMINISTRATIVE groups [system]
- SU groups [slip]
- HOME directory [/home/slip]
- Initial PROGRAM [/bin/sh]
- User INFORMATION [SLIP-Dialup]
- Another user can SU to user? false
- User can RLOGIN? true
- TRUSTED PATH? nosak
- Valid TTYs [/dev/tty1]
- AUDIT classes []
- PRIMARY authentication method [SYSTEM]
- SECONDARY authentication method [NONE]
- Max FILE size [2097151]
- Max CPU time [-1]
- Max DATA segment [262144]
- Max STACK size [65536]
- Max CORE file size [2048]
- Max physical MEMORY [65536]
- File creation UMASK [022]
- EXPIRATION date (MMDDhhmmyy) [0]
-
- 3. Create a tty with getty on it:
- Add a TTY
- [Entry Fields]
- TTY type tty
- TTY interface rs232
- Description Asynchronous Terminal
- Parent adapter sa0
- * PORT number [s1]
- BAUD rate [38400]
- PARITY [none]
- BITS per character [8]
- Number of STOP BITS [1]
- TERMINAL type [dumb]
- STATE to be configured at boot time [available]
- DMA on
- Read Trigger 0,1,2,3
- Transmit buffer count [16]
- Name of initial program to run [/etc/getty]
-
- Note: The following attributes are only applicable if /etc/getty is
- specified as the initial program to run.
-
- Enable program? respawn
- Run level 2
- Enable LOGIN share
- TIME before advancing to next port setting [0]
- STTY attributes for RUN TIME [hupcl,cread,brkint>
- STTY attributes for LOGIN [hupcl,cread,echoe,>
- RUN shell activity manager no
- Optional LOGGER name []
-
- 4. Change the hardware characteristics so that it uses NO XON/XOFF handshake
- section 1.613 also talks about tty flow control.
-
- 5. Here is the the .profile for User slip to manage dialups
-
- PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:/usr/local/bin:.
-
- ENV=$HOME/.kshrc
- HISTSIZE=128
-
- export PATH ENV HISTSIZE
- #
- # Search for a LCK-File for our tty if there is one
- #
-
- if test -f /etc/locks/LCK..tty1
- then
- SHPID=`cat /etc/locks/LCK..tty1`
- else
- echo `date` " No LCK-File !!!" >>slip.log
- exit 64
- fi
-
- #
- # Search for our own Shell to get the PID for checking against LCK-File
- #
-
- SH2PID=`ps -aef |
- sed -n -e 's/^ *slip *\([0-9][0-9]*\) .*-sh *$/\1/p`
-
- #
- # Is it the the same PID as in the LCK File so that we can start working ??
- #
-
- if test $SHPID = $SH2PID
- then
- # remove the LCK-File because slattach does not like it.
- rm -rf /etc/locks/LCK..tty1
- # Add RTS/CTS Handshakeing to our own tty
- stty add rts
- # Startup slattach. Slattach has to have mode 4755 to be started up !!!
- /usr/sbin/slattach tty1
- # Just say that we are up.
- echo `date` " Starting up slip-daemon " >>slip.log
- # leave slattach enough time to startup
- sleep 4
- else
- # Something must be wrong with the LCK-File
- SH3PID=`ps -aef | awk ' {print $2}' | grep $SHPID`
-
- if test ."$SH3PID" = .""
- then
- SH3PID="NO_SUCH_PROCESS"
- fi
-
- if test $SHPID = $SH3PID
- then
- # There is a living process which owns the LCK-File !!
- echo `date` " Can't remove LCK-File, not owner !!!" >>slip.log
- exit 64
- else
- # Who the hell didn't remove the LCK-File (should never happen)
- echo `date` " LCK-File with no owner found !!!" >>slip.log
- exit 64
- fi
- fi
-
- # Get the pid of slattch so that we can kill him later on.
- SLPID=`ps -aef |
- sed -n -e 's/^ *slip *\([0-9][0-9]*\) .*-.*\/usr\/sbin\/slattach tty1 *$/\1/p`
-
- # Kill slattach if we get a signal 1 (Carrier Lost ? / Otherside-slattach
- # terminated )
- trap "kill $SLPID; exit 0" 1
-
- # We will have a nice sleep and nice dreamings
- while sleep 256
- do
- :
- done
-
- Here's another scenario:
- From: oosten@angelo.ee.ualberta.ca (Brian Oostenbrink)
-
- Operating System: IBM AIX 3.2.1 and 3.2.3
-
- Configuring two RS6000s via a Serial Line Interface Protocol (SLIP)
- connection over two US Robotics Sportster 14,400 modems.
-
- The AIX implementation of SLIP is slightly different from most others.
- The ifconfig command is used to bring up a serial interface, and the
- slattach command is used to connect the interface to the serial port
- used for the connection. Dialer device commands can also be issued when
- invoking the slattach command, using UUCP chat syntax.
-
- The following describes a connection between two machines:
-
- local.j.k.l
- ethernet IP address 129.128.127.21
- slip interface IP address 129.1.2.1
-
- remote.a.b.c
- ethernet IP address 129.11.22.44
- slip interface address 129.11.22.1
-
- 1. Interface configuration
-
- Each machine must have a separate IP address dedicated to the SLIP
- interface. On remote.j.k.l, start the SLIP interface with:
-
- ifconfig sl0 129.11.22.1 129.128.127.1 up
-
- and on local.a.b.c:
-
- ifconfig sl0 129.128.127.1 129.11.22.1 up
-
- It is important in later versions of AIX 3.2.3+ to use the same SLIP
- interface # as the ptty port #, ie. if you use tty12, use ifconfig sl12
- instead of sl0.
-
- At this point the interfaces are ready to be connected.
-
- 2. tty configuration
- The tty ports on both machines were configured in an identical manner
- using smit.
- [Entry Fields]
- TTY type tty
- TTY interface rs232
- Description Asynchronous Terminal
- Parent adapter sa0
- PORT number [] +
- BAUD rate [38400] +
- PARITY [none] +
- BITS per character [8] +
- Number of STOP BITS [1] +
- TERMINAL type [dumb]
- STATE to be configured at boot time [available] +
- DMA on +
- Read Trigger 0,1,2,3
- Transmit buffer count [16] #
- Name of initial program to run [etc/getty]
-
- Note: The following attributes are only applicable if /etc/getty is specified
- as the initial program to run.
-
- Enable program? respawn
- Run level 2
- Enable LOGIN disable +
- TIME before advancing to next port setting [0] +#
- STTY attributes for RUN TIME [hupcl,cread,brkint,icr>
- STTY attributes for LOGIN [hupcl,cread,echoe,cs8,>
- RUN shell activity manager no +
- Optional LOGGER name []
-
- On older versions of AIX, we encountered some problems disabling getty, and
- resorted to changing the /etc/inittab file directly. For example, change
-
- tty0:2:respawn:/etc/getty /dev/tty0
- to
- tty0:2:off:/etc/getty /dev/tty0
-
- This will disable getty from running. After creating the SLIP tty device,
- you will need to change its hardware configuration to disable Xon/Xoff
- flow control. Software flow control should not be used for SLIP. Type
- 'smit chtty', and then select sub item 2: Hardware settings.
-
- Most of the parameters in the tty configuration are the defaults.
-
- 3. Modem Configuration
-
- The modems were configured as follows:
-
- RTS/CTS flow control enabled.
- Xon/Xoff software flow control disabled. Usually this is automatic if
- RTS/CTS is enabled.
- Data rate, terminal to modem = fixed.
- This is the baud rate from the tty port to the modem. We used a
- fixed modem-port transfer rate, set to the fastest speed supported
- by both the tty port and the modem. Newer modems can use a higher
- transfer rate between the modem and serial port than the modem to
- modem rate, which is necessary to use data compression effectively.
- In our setup, we used 14.4 kBaud modems with a port speed of 38.4
- kBaud. If your modem supports this feature, use it, otherwise set
- the port speed equal to the modem connection rate. On the USR
- Sportster at&b1 fixes the serial port rate to that of the last
- AT command. The speed parameter of the slattach command can be
- used to ensure that this rate is that set in the tty configuration.
- Error Correction enabled - not mandatory, but a good idea
- Data Compression - not required, but it helps, especially for text
- transfers.
- Auto Answer - If the SLIP connection is to be initiated from either
- machine, both modems should be set to auto answer, otherwise, just
- the answering modem.
-
- It is a good idea to configure the modem and then save the settings
- to NVRAM, so that the correct settings can always be restored by the
- slattach command.
-
- 4. UUCP configuration files
-
- /usr/lib/uucp/Devices
- /usr/lib/uucp/Dialers
-
- The Devices file must contain an entry with the tty and serial port
- speed used for the interface. In our example,
- Direct tty0 38400 slipdialer
-
- The keyword 'slipdialer' is merely an index into the Dialers file.
- For our purposes, the slipdialer entry in the Dialers file is simply:
-
- slipdialer
-
- This entry can also contain UUCP chat commands, or the chat commands
- can be included in the slattach command.
-
- 5. slattach invocation
-
- slattach connects the device on the tty port to the SLIP interface
- created by ifconfig, and sends any commands to the tty device if
- needed. For our example, remote.j.k.l would never initiate a call,
- only answer incoming calls. Therefore we execute:
-
- slattach tty0 38400 '"" ATZ OK ""'
-
- which connects the tty at 38400 baud. We could also simply run
-
- slattach tty0
-
- ie. without any modem commands, but the modem to port speed may not
- be correctly set this way. In addition, the ATZ command ensures the
- modem is set to the NVRAM settings.
-
- On local.a.b.c type:
-
- slattach tty0 38400 '"" ATZ OK \pATDT4925871 BIS ""' 4
-
- This establishes the link at 38400 baud, and executes the dial string
- as shown. The dial string is a UUCP chat string and are configured
- in an expect send expect send ... format. The string:
-
- '"" ATZ OK \pATDT4925871 BIS ""'
-
- is interpreted as:
- expect "" (null string) from modem
- send ATZ to modem
- expect OK from modem
- send \pATDT4925871 to modem
- expect BIS from modem
-
- BIS is the end of the CONNECT STRING. You could use any portion of
- the string returned by the modem upon a connection as the expect
- string. It may be wiser to simply expect CONNECT since all
- connections should return this string.
- The null strings are necessary because the first parameter of the
- UUCP is an expected string from the modem, which can only be a null
- string until the modem has been given a command.
-
- The last parameter (4) of the slattach command is the debug level.
- A debug level of 4 displays the UUCP chat strings, which is useful
- for checking the modem status.
-
- 6. Routing
- ifconfig is sufficient if all you want to do is talk between the
- two hosts. If you are running SLIP so that you can talk to more
- than just that one other host you have to advertise your address.
-
- 1) arp -s 802.5 iago 10:00:5a:b1:49:d8 pub
- where 802.5 is a token-ring network the hardware address can
- be obtained with `netstat -v` and iago was the SLIP client (My
- PC at home :) pub is the important part it means "published"
- You may want to run this at boot time.
-
- Routing through the SLIP link is similiar to routing of any gateway.
- Invoking the ifconfig command automatically sets up a route between
- the two SLIP machines. An entry in /etc/hosts or the named database
- should be made, with the same machine name used for the SLIP address
- as the ethernet address on each machine. For example, in /etc/hosts
- on remote.a.b.c (and any other machine on remote.a.b.c ethernet):
-
- 129.11.22.44 remote.a.b.c # ethernet address
- 129.11.22.1 remote.a.b.c # slip address
-
- It is preferable to place the ethernet address in the hosts file
- before the SLIP address so remote.a.b.c will resolve to the
- ethernet address. When using named, it is important to have both
- addresses in the reverse file with the same name. We experienced
- difficulties with NFS mounting over the slip link, owing to some
- machine interpreting NFS requests from one of the two SLIP machines
- as coming from the SLIP address, while the SLIP machine believed it
- was sending the request from the ethernet address. This problem was
- eliminated by having both addresses reverse resolve to the same name.
-
- 7. Performance
- At a modem speed of 14.4 kBaud and a port speed of 38.4 kBaud, we
- realized a transfer rate through ftp of about 3.5 kB/s for text
- files, and 1.3 kB/s for compressed files.
-
-
- 1.607: Where is DCE discussed?
- From: brent@uwovax.uwo.ca (Brent Sterner)
-
- DCE is the Distributed Computing Environment, which is roughly a
- flexible client-server architecture for heterogenous platforms.
- For more information, take a look in comp.unix.osf.misc.
-
-
- 1.608: How do I make /var/spool/mail mountable?
- From: petersen@pi1.physik.uni-stuttgart.de (Joerg Petersen)
-
- In our cluster we share a /usr/local disk. We have a directory
- /usr/local/spool/mail and /var/spool/mail is soft-linked to it.
-
- From: fred@hal6000.thp.Uni-Duisburg.DE (Fred Hucht)
-
- Several problems has been reported on sharing the mail directory via
- NFS. The problems may occur when two or more sendmail daemons and/or
- mail readers access a user's mail file simultanously, because of NFS'
- file locking mechanism.
-
- We use another method here: Every user has one line in his/her
- $HOME/.forward file that reads
-
- xxx@mainserver.domain.name
-
- where xxx is the user node and mainserver.domain.name is the full
- hostname of one of the machines. Then all incoming mail to all machines
- is forwarded to mainserver, while mainserver ignores this line.
-
-
- 1.609: getty spawning too rapidly
- thanks to aslam@abaseen.lums.edu.pk (Sohail Aslam)
-
- The problem can occur due a number of modem settings. The most
- frequent is that the echo is not disabled on modems that are to
- accept incoming calls. In hayes language, ATE0 disables echo.
- If echo is enabled, the login prompt sent by the DTE (computer)
- is echoed back to it. It then issues "password:" prompt which
- the modem conveniently echoes back again. And the cycle goes on.
-
- Another setting to check is the Q registers which controls the
- modem's response to the DTE. The hayes command ATQ0 enables
- results codes. The Q register in conjunction with the X and
- the V registers, reports back to the DTE the status of the incoming
- or outgoing call, and the type of connection established. For
- outgoing calls, one would want to enable result codes but not
- for incoming calls. If codes are enabled (via ATQ0), when a
- call comes in, the modem will send strings (if ATV1 and ATX4 set)
- "RINGING", "CONNECTED" etc. to the local DTE. The getty will think
- some one is trying to login. It will send password prompt. Trouble
- again. Telebit and other intelligent modems has ATQ2 setting
- which says "reports codes only when calling out." For others,
- you will need to disable it (ATQ1) and enable when calling out.
-
- The DSR setting can be a source of problem. Ideally, modem should
- raise DSR only when CD is detected and modem raises CTS. Computer,
- such as the VAX, wait 30 seconds after the modem raises DSR. If
- CD is not on by that time, the computer will drop DTR causing the
- modem to reset. The DSR should be set to be raised only when
- carrier has been detected. The hayes setting is AT&S1.
-
- The DCD setting should be such that it reflects the true nature of
- the carrier. The CD can be forced on at all times (AT&C0). This
- is not good. Set it to AT&C1.
-
- Most modems can reload saved settings from non-volatile memory
- on a DTR transition. This is useful for resetting the modem
- when a call drops. Use AT&D3 to get this effect.
-
- For dial in, thus, set AT E0 Q1 &C1 &D3 &S1 &W. The &W stores the
- settings in memory. They will be reloaded due to &D3.
-
-
- 1.610: Does AIX support Compressed SLIP (CSLIP)?
-
- No. That means no VJ compression either :) See PPP in section 5.07
- if you want more than standard SLIP.
-
-
- 1.611: How do I setup anonymous ftp on my AIX system?
- (stolen from Peter Klee <klee@dhdibm1.bitnet> posting)
-
- Have a look at '/usr/lpp/tcpip/samples/anon.ftp'. It is a shell script
- and will set up a anonymous ftp site on your local RS/6000. Note: the
- ftpd that comes with AIX does not support the display messages every
- time a user changes a directory or even when they login.
-
- 1.612: Talk, getting notification.
-
- If you are not getting notification (that someone wants to talk to
- you), use (swcons `tty` && mesg y) in one window.
-
- There are many variations of 'talk' and finding compatible versions
- for multiple operating systems can be tricky.
-
- 1.613: Disabling software flow control; using RTS/CTS.
-
- Different versions of AIX 3.2.5 respond differently to attempts to
- enable flow control (RTS/CTS signals). This section is an attempt to
- compile a list of different approaches.
-
- The most straight forward is:
- chdev -l ttyxx -a rts=yes
- [ Note: ix40410 for AIX 3.2.5 should give you this functionality.
- PTF U426113 and numerous other superceding ptfs should provide this.]
-
- If carrier signal is high (its connected) you can try
- stty add rts </dev/ttyxx
-
- There is also a program that I first saw on the 800-IBM-4FAX number,
- also found in INFO that will remedy the situation in some cases. Note
- that this code ignores the return code from ioctl (which on my machine
- is <0 :)
-
- /* This program is an adaptation of a program provided by IBM Defect Support.
- It is provided without warrantee, or support.
-
- The syntax of the command is:
-
- setrts tty [tty [tty [...]]]
-
- The program will loop through each tty provided on the command line, and
- turn on the 'rts' line discipline. The program does not require that
- the Carrier Detect signal be held high to keep the serial device from
- blocking on the attempt to open it. The program works for all valid ttys.
-
- BUGS: None that are known; however, using the program to set 'ptys' may
- cause the 'pty' to become unusable.
-
- This program was written by Robin D. Wilson, Pencom Software (with the
- specific 'ioctl()' call provided by the IBM Defect Support Center.
-
- I call it: "setrts"
-
- To compile:
- cc -O -o setrts setrts.c
- strip setrts
-
- (Funny, but if you strip with the compiler (i.e., cc -s), you end up with
- 120 extra bytes in the executable...)
- */
-
- #include <stdio.h>
- #include <fcntl.h>
- #include <termios.h>
- #include <sys/tty.h>
- #include <string.h>
- #include <sys/param.h>
- #include <unistd.h>
-
- #define DEVDIR "/dev/"
- #define LINEDISP "rts"
-
- main (argc, argv)
- int argc;
- char **argv;
- {
- int tty;
- char ttyname[MAXPATHLEN];
-
- /* Give a 'usage' recommendation if they don't provide an argument */
- if (argc < 2) {
- fprintf(stderr, "usage: %s <ttyn> [ttyn [ttyn [...]]]\n",argv[0]);
- exit(-1);
- }
- /* Otherwise, loop through all the arguments... */
- else while (--argc >= 1) {
- argv++;
- /* Check to see if they input the 'tty' names with the DEVDIR on them...
- * If not, put it on...
- */
- if (strncmp(DEVDIR, argv[0], strlen(DEVDIR)) != 0) {
- strcpy(ttyname, DEVDIR);
- strcat(ttyname, argv[0]);
- }
- else
- strcpy(ttyname, argv[0]);
-
- /* Open the tty. Use the non-blocking open (O_NDELAY) to open without a
- * carrier (CD) present on the line...
- */
- if ((tty = open(ttyname, O_RDWR|O_NDELAY)) < 0) {
- fprintf(stderr, "%s: couldn't open tty device.\n",ttyname);
- exit (-2);
- }
- /* Add the 'rts' line discipline... */
- (void)ioctl(tty, TXADDCD, LINEDISP);
- (void)close(tty);
- }
- }
-
-
- ______________________________________________________________________________
- 1.900: SCSI-1 and SCSI-2 "interoperability" got you confused?
-
- A. SCSI-1 devices are supported on a SCSI-2 adapter. This
- config will provide SCSI-1 performance.
-
- B. SCSI-2 devices are supported on a SCSI-1 adapter. This
- config will provide SCSI-1 performance.
-
- C. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-1
- adapter. All devices will have SCSI-1 performance.
-
- D. A mix of SCSI-2 and SCSI-1 devices are supported on a SCSI-2
- adapter. SCSI-2 devices will have SCSI-2 performance (10 MB/sec)
- and SCSI-1 devices will have SCSI-1 performance (4-5 MB/sec).
-
-
- 1.901: How to get your keyboard back after unplugging it from the 6000
- From: Mickey Coggins and Anne Serre
-
- When you unplug your keyboard from a running system, and plug it back
- in, the key mapping is wrong. For example, keys like Caps Lock and Ctrl
- don't work as designed.
-
- Solution: Type at the command line
-
- /usr/lpp/diagnostics/da/dkbd
-
- Your screen goes black, you hear a few beeps, and your keyboard is reset.
- It works with any environment, Xwindows, hft, NLS...
-
- For Models 220, 230 and M20, use the following commands:
-
- /usr/lpp/diagnostics/da/dkbd
- /usr/lpp/diagnostics/da/dkbdsal (for the 220)
-
-
- 1.902: How do I set up pcsim, the DOS emulator?
-
- You must have a bootable DOS diskette to install pcsim. Either DOS 3.3,
- 4.x, or 5.0 will work. IBM do not officially support DOS 5.0 for pcsim
- but I have no problems with it. Just don't try to be fancy with the UMB
- and memory manager stuff.
-
- With a bootable DOS disk in the drive, do:
- $touch /u/dosdrive (this is the AIX file for DOS emulation)
- $pcsim -Adiskette 3 -Cdrive /u/dosdrive
- You would now get an A prompt. Type:
- A> fdisk
- Create the virtual C drive of whatever size you choose. Make it large
- enough for your needs since you cannot enlarge it later.
- A> format c: /s (to format the virtual C drive)
- Now exit from pcsim with ESCpcsim (Esc key followed by pcsim).
-
- Now create a simprof file. Following is a starter:
-
- Adiskette : 3
- Cdrive :/u/dosdrive
- lpt1 : name of printer queue
- refresh : 50
- dmode : V
- mouse : com1
-
- You can now start pcsim anytime by typing pcsim. Make sure no floppies
- are in the drive. For further information, refer to publication
- SC23-2452, Personal Computer Simulator/6000 Guide and Reference.
-
-
- 1.903: How do I transfer files between AIX and DOS disks?
-
- In one of the bos extensions are commands for transferring files between
- DOS diskettes and AIX. The commands are dosread, doswrite, dosdir, dosdel,
- and dosformat. Many users have mentioned that the mtools package from
- prep.ai.mit.edu is better than the native AIX programs.
-
-
- 1.904: Where is the crypt program.
-
- You can use PGP or crypt depending on your needs both require that you
- are a United States citizen and you reside in the United States.
- Crypt is availible from your IBM marketing branch office.
-
- The United States government classifies encryption technology as a
- munition, meaning that you need an arms license to sell it overseas or
- to non-US nationals.
-
- _____________________________________________________________________________
- 2.00: C/C++
-
- Contrary to many people's belief, the C environment on the RS/6000 is
- not very special. The C compiler has quite a number of options that can
- be used to control how it works, which "dialect" of C it compiles, how
- it interprets certain language constructs, etc. InfoExplorer includes a
- Users Guide and a Reference Manual.
-
- The compiler can be invoked with either xlc for strict ANSI mode and cc
- for RT compatible mode (i.e. IBM 6150 with AIX 2). The default options
- for each mode are set in the /etc/xlc.cfg file, and you can actually add
- another stanza and create a link to the /bin/xlc executable.
-
- The file /usr/lpp/xlc/bin/README.xlc has information about the C
- compiler, and the file /usr/lpp/bos/bsdport contains useful information,
- in particular for users from a BSD background.
-
- The file /etc/xlc.cfg also shows the symbol _IBMR2 that is predefined,
- and therefore can be used for #ifdef'ing RS/6000 specific code.
-
-
- 2.01: I cannot make alloca work
-
- A famous routine, in particular in GNU context, is the allocation
- routine alloca(). Alloca allocates memory in such a way that it is
- automatically free'd when the block is exited. Most implementations
- does this by adjusting the stack pointer. Since not all C environments
- can support it, its use is discouraged, but it is included in the xlc
- compiler. In order to make the compiler aware that you intend to use
- alloca, you must put the line
-
- #pragma alloca
-
- before any other statements in the C source module(s) where alloca is
- called. If you don't do this, xlc will not recognize alloca as anything
- special, and you will get errors during linking.
-
- For AIX 3.2, it may be easier to use the -ma flag.
-
-
- 2.02: How do I compile my BSD programs?
-
- The file /usr/lpp/bos/bsdport contains information on how to port
- programs written for BSD to AIX 3.1. This file may be very useful for
- others as well.
-
- A quick cc command for most "standard" BSD programs is:
-
- $ cc -D_BSD -D_BSD_INCLUDES -o [loadfile] [sourcefile.c] -lbsd
-
- If your software has system calls predefined with no prototype
- parameters, also use the -D_NO_PROTO flag.
-
-
-
-